package com.hava.orm.jpa;


import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;

import java.io.Serializable;

/**
 * Created by zhanpeng on 15-2-10.
 * *  主要来看看Spring Data JPA提供的接口，也是Spring Data JPA的核心概念：
 1：Repository：最顶层的接口，是一个空的接口，目的是为了统一所有Repository的类型，且能让组件扫描的时候自动识别。
 2：CrudRepository ：是Repository的子接口，提供CRUD的功能
 3：PagingAndSortingRepository：是CrudRepository的子接口，添加分页和排序的功能
 4：JpaRepository：是PagingAndSortingRepository的子接口，增加了一些实用的功能，比如：批量操作等。
 5：JpaSpecificationExecutor：用来做负责查询的接口
 6：Specification：是Spring Data JPA提供的一个查询规范，要做复杂的查询，只需围绕这个规范来设置查询条件即可
 * * 这里JpaRepository除了PagingAndSortingRepository以外，还具有Jpaepository自己特有的方法
 * * 让这个类自动添加了CrudRepository与JpaSpecificationExecutor，CRUD默认把实现展现。JpaSpecification可以自定义sql进行复杂查询
 */
//public interface AutoRepository<T, ID extends Serializable> extends JpaRepository<T, ID>,JpaSpecificationExecutor<T> {
//}

public interface AutoRepository<T,ID extends Serializable> extends JpaRepository<T,ID>,JpaSpecificationExecutor<T>{}